package org.dromara.business.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.dromara.common.json.handler.DecimalRemoveZeroSerializer;
import org.dromara.common.tenant.core.TenantEntity;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * 订单对象 goods_order
 *
 * @author Lion Li
 * @date 2025-06-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@TableName("goods_order")
public class GoodsOrder extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 订单编号
     */
    @TableId(value = "goods_order_id")
    private Long goodsOrderId;

    /**
     * 商品id
     */
    private Long goodsId;

    /**
     * 商品名称
     */
    private String name;

    /**
     * 商品图片id
     */
    private String url;

    /**
     * 商品价格
     */
    private BigDecimal price;

    /**
     * 商品介绍
     */
    private String info;

    /**
     * 一级分类, 保存文字
     */
    private String oneType;
    private Long oneTypeId;
    /**
     * 二级分类, 保存文字
     */
    private String type;

    /**
     * 订单状态（1待付款 2待接单 3进行中 4服务完成(待客户确认) 5已完成 6已退款 ）
     */
    private String status;

    /**
     * 联系手机号
     */
    private String phone;

    /**
     * 游戏ID
     */
    private String gameIdNo;

    /**
     * 游戏区服
     */
    private String gameAreaType;

    /**
     * 下单备注
     */
    private String remark;

    /**
     * 打手id
     */
    private Long waiterId;
    /**
     * 优惠券id
     */
    private Long couponId;
    /**
     * 优惠金额
     */
    @JsonSerialize(using = DecimalRemoveZeroSerializer.class)
    private BigDecimal couponPrice;

    /**
     * 服务截图
     */
    private String serverImg;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 服务完成截图备注
     */
    private String serverRemark;

    /**
     * 队友id(参与分佣)
     */
    private String memberIds;
    /**
     * 购物车购买标识
     */
    private Long buyFlag;
}
